#实现一个装饰器
# 装饰器的使用
import time
def clock_it_time_deco(func): # 延伸了func的作用域，装饰器的本质
    def wrapper(*args, **kwargs):  # 嵌套一层；
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()

        print(f"{func.__name__} excute time:{format(end_time - start_time, '.2f')} s")
        # print(result)#None
        # return result
    return wrapper  # 延伸了func的作用域

# @clock_it_time_deco
def foo_add1(a, b):
    count = 1
    while True:
        if count > a ** b:
            break
        count += 1
    print("foo_add1函数： count=",count)


ff=clock_it_time_deco(foo_add1)
ff(10,4)

# 以上两行：函数调用函数；等同于装饰器
# 装饰器两步：@+直接调用函数；

# foo_add1(10,4)
# 没有@，只执行add1函数，不会有时间的计算；
#有@，执行add1和起始时间计算；增加的功能；